package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 发票开具申请单对象 oa_invoice_application
 *
 * @author ruoyi
 * @date 2025-03-14
 */
public class OaInvoiceApplication extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 甲方名称 */
    @Excel(name = "甲方名称")
    private String clientName;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal invoicedAmount;

    /** 开具公司 */
    @Excel(name = "开具公司")
    private String issuingCompany;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String invoiceType;

    /** 税率 */
    @Excel(name = "税率")
    private String taxRate;

    /** 开具类型 */
    @Excel(name = "开具类型")
    private String issuingType;

    /** 立项id */
    @Excel(name = "立项id")
    private Long projectId;

    /** 是否审核（0未审核，1已审核） */
    @Excel(name = "是否审核", readConverterExp = "0=未审核，1已审核")
    private Integer isApproved;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dataapp;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setProjectNumber(String projectNumber)
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber()
    {
        return projectNumber;
    }

    public void setClientName(String clientName)
    {
        this.clientName = clientName;
    }

    public String getClientName()
    {
        return clientName;
    }

    public void setInvoicedAmount(BigDecimal invoicedAmount)
    {
        this.invoicedAmount = invoicedAmount;
    }

    public BigDecimal getInvoicedAmount()
    {
        return invoicedAmount;
    }

    public void setIssuingCompany(String issuingCompany)
    {
        this.issuingCompany = issuingCompany;
    }

    public String getIssuingCompany()
    {
        return issuingCompany;
    }

    public void setInvoiceType(String invoiceType)
    {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceType()
    {
        return invoiceType;
    }

    public void setTaxRate(String taxRate)
    {
        this.taxRate = taxRate;
    }

    public String getTaxRate()
    {
        return taxRate;
    }

    public void setIssuingType(String issuingType)
    {
        this.issuingType = issuingType;
    }

    public String getIssuingType()
    {
        return issuingType;
    }

    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId()
    {
        return projectId;
    }

    public void setIsApproved(Integer isApproved)
    {
        this.isApproved = isApproved;
    }

    public Integer getIsApproved()
    {
        return isApproved;
    }

    public void setDataapp(Date dataapp)
    {
        this.dataapp = dataapp;
    }

    public Date getDataapp()
    {
        return dataapp;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("projectNumber", getProjectNumber())
                .append("clientName", getClientName())
                .append("invoicedAmount", getInvoicedAmount())
                .append("issuingCompany", getIssuingCompany())
                .append("invoiceType", getInvoiceType())
                .append("taxRate", getTaxRate())
                .append("issuingType", getIssuingType())
                .append("projectId", getProjectId())
                .append("isApproved", getIsApproved())
                .append("dataapp", getDataapp())
                .toString();
    }
}
